{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "520af357",
   "metadata": {},
   "source": [
    "购物车程序项目：\n",
    "\n",
    "要求：1、运行程序后，让用户输入支付宝余额，然后打印我们的商品列表给用户。\n",
    "\n",
    "　　 2、让用户输入商品编号进行商品的购买。\n",
    "\n",
    "　　 3、用户选择商品后，检查用户的余额是否够，若够则直接扣款，不够则提醒用户。\n",
    "\n",
    "　　 4、用户可以随时退出购买，推出时打印用户已购买的商品和支付宝余额。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d0bcb779",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入您的余额: 290\n",
      "-------商品列表信息-------\n",
      "商品编号: 0, 商品的名称: python课本, 商品的价格: 60 元 \n",
      "商品编号: 1, 商品的名称: 华为手机, 商品的价格: 8000 元 \n",
      "商品编号: 2, 商品的名称: 小米手环, 商品的价格: 199 元 \n",
      "商品编号: 3, 商品的名称: 蜜雪冰城, 商品的价格: 8 元 \n",
      "请输入正确的商品编号进行购买(如果退出请输入“q”)：3\n",
      "[蜜雪冰城]已经加入您的购物车，您的【余额】还有 282  元\n",
      "-------商品列表信息-------\n",
      "商品编号: 0, 商品的名称: python课本, 商品的价格: 60 元 \n",
      "商品编号: 1, 商品的名称: 华为手机, 商品的价格: 8000 元 \n",
      "商品编号: 2, 商品的名称: 小米手环, 商品的价格: 199 元 \n",
      "商品编号: 3, 商品的名称: 蜜雪冰城, 商品的价格: 8 元 \n",
      "请输入正确的商品编号进行购买(如果退出请输入“q”)：2\n",
      "[小米手环]已经加入您的购物车，您的【余额】还有 83  元\n",
      "-------商品列表信息-------\n",
      "商品编号: 0, 商品的名称: python课本, 商品的价格: 60 元 \n",
      "商品编号: 1, 商品的名称: 华为手机, 商品的价格: 8000 元 \n",
      "商品编号: 2, 商品的名称: 小米手环, 商品的价格: 199 元 \n",
      "商品编号: 3, 商品的名称: 蜜雪冰城, 商品的价格: 8 元 \n",
      "请输入正确的商品编号进行购买(如果退出请输入“q”)：3\n",
      "[蜜雪冰城]已经加入您的购物车，您的【余额】还有 75  元\n",
      "-------商品列表信息-------\n",
      "商品编号: 0, 商品的名称: python课本, 商品的价格: 60 元 \n",
      "商品编号: 1, 商品的名称: 华为手机, 商品的价格: 8000 元 \n",
      "商品编号: 2, 商品的名称: 小米手环, 商品的价格: 199 元 \n",
      "商品编号: 3, 商品的名称: 蜜雪冰城, 商品的价格: 8 元 \n",
      "请输入正确的商品编号进行购买(如果退出请输入“q”)：2\n",
      "您的余额不足以购买，请更换支付方式\n",
      "-------商品列表信息-------\n",
      "商品编号: 0, 商品的名称: python课本, 商品的价格: 60 元 \n",
      "商品编号: 1, 商品的名称: 华为手机, 商品的价格: 8000 元 \n",
      "商品编号: 2, 商品的名称: 小米手环, 商品的价格: 199 元 \n",
      "商品编号: 3, 商品的名称: 蜜雪冰城, 商品的价格: 8 元 \n"
     ]
    }
   ],
   "source": [
    "# 1，运行程序后，让用户输入支付宝余额,然后打印我们的商品列表给用户\n",
    "# 商品列表数据\n",
    "goods_list = [\n",
    "    # 商品样式： [商品名称,商品价格],\n",
    "    [\"python课本\",60],  \n",
    "    [\"华为手机\",8000],\n",
    "    [\"小米手环\",199],\n",
    "    [\"蜜雪冰城\",8]\n",
    "]\n",
    "# 写到某一步，发现前面需要内容。可以优化增加\n",
    "user_shopping_cart = [] # 用户列表初始为空，后续用 append 进行增加\n",
    "\n",
    "# 用户输入：input\n",
    "Alipay = int(input(\"请输入您的余额: \"))\n",
    "\n",
    "# 打印商品信息，打印商品的次数是由商品列表的长度决定的 (len(goods_list))\n",
    "while True: # 将实现 过程 的循环\n",
    "    print(\"-------商品列表信息-------\")\n",
    "    for i in range(len(goods_list)):\n",
    "        #  给格式化的样式(先给)\n",
    "        #  样式(不懂代码的人可以完成的工作)\n",
    "        #     ：\"商品编号: xx, 商品的名称: xx, 商品的价格: xx \"\n",
    "        print(\"商品编号: %s, 商品的名称: %s, 商品的价格: %s 元 \"%(i,goods_list[i][0],goods_list[i][1]))\n",
    "\n",
    "    #  2、让用户输入商品编号进行商品的购买.\n",
    "    # 用户输入商品编号\n",
    "    choice = input(\"请输入正确的商品编号进行购买(如果退出请输入“q”)：\")  # \"36\"\n",
    "    if choice.isdigit(): # isdigit 判断字符串是否是数值\n",
    "        choice = int(choice) # 如果是数值，把它变成真正的 int\n",
    "        # 判断商品编号是否在  我们的范围内\n",
    "        if choice >= len(goods_list):\n",
    "            print(\"您输入的商品不存在，请检查再次输入~\")\n",
    "        else:\n",
    "            # 对比商品编号，找到对应商品：goods_list[choice][1],\n",
    "            # 1. 检查用户余额 vs 商品价格关系\n",
    "            if Alipay > goods_list[choice][1]:\n",
    "            # 买得起 1. 扣钱， 2. 把商品加到用户购物列表\n",
    "               Alipay = Alipay - goods_list[choice][1]\n",
    "               user_shopping_cart.append(goods_list[choice])\n",
    "               print(\"[%s]已经加入您的购物车，您的【余额】还有 %s  元\"%(goods_list[choice][0],Alipay)) \n",
    "            else:\n",
    "                print(\"您的余额不足以购买，请更换支付方式\")\n",
    "    elif choice == \"q\":\n",
    "        # 如果用户输入q 则说明用户要退出购买了，我们将打印用户已购买的商品列表 以及 用户余额\n",
    "        print(\"您的购物车:\",user_shopping_cart,'/n',\"您的账户余额: %s 元\"%(Alipay))\n",
    "        print(\"您的账户余额: %s 元\"%(Alipay))\n",
    "        break\n",
    "    else:\n",
    "        print(\"请输入正确的【商品编码】！！或者按照输入提示进行输入\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a2e41f7a",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
